abelian groups discrete mathematics problems